Aamazon CloudWatch
https://gyazo.com/9dfc377277fa1b29db9713cdcf3fa231
AWS上で動作するリソースの監視・可視化・アラートを提供するサービス
主な機能
メトリクスの収集と可視化
ログの収集と分析
アラームの設定(閾値超過の通知)
Logs Insightsによるログクエリ
例えば、
EC2を監視して、CPU使用率が90%以上になると
アラートを飛ばして、
オートスケーリングさせて新しいインスタンスを起動する
落ち着いたらインスタンスを停止させる
用語
Logs
Events
よくわからん
Insights
CloudWatchのアラーム(メトリクスのしきい値監視)を作成する。
例
code:hcl (rb)
resource "aws_cloudwatch_metric_alarm" "cpu_alarm" {
alarm_name = "high_cpu_alarm"
comparison_operator = "GreaterThanThreshold"
evaluation_periods = "2"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
period = "120"
statistic = "Average"
threshold = "80"
alarm_description = "This metric monitors EC2 CPU utilization"
dimensions = {
InstanceId = "i-xxxxxxxxxxxxxxxxx"
}
}
CloudWatch Logs Insights のクエリ定義(保存されたクエリ)を作成する。
例:
code:hcl(rb)
resource "aws_cloudwatch_query_definition" "query_example" {
name = "ErrorQuery"
query_string = <<QUERY
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20
QUERY
}
🔍 補足:
このリソースは「定期実行」ではなく、クエリを管理するためのものです。
CloudWatch Events(EventBridge)を使って、スケジュール実行やログイベント検知時のアクションを設定。
例(スケジュール):
code:hcl(rb)
resource "aws_cloudwatch_event_rule" "every_hour" {
name = "run-every-hour"
schedule_expression = "rate(1 hour)"
}
resource "aws_cloudwatch_event_target" "target" {
rule = aws_cloudwatch_event_rule.every_hour.name
target_id = "lambda"
arn = aws_lambda_function.log_processor.arn
}
ダッシュボード作成
可視化パネルの管理
イベント検知ルール
スケジュールやログイベントでトリガー
イベントターゲット設定
Lambda や StepFunctions への接続